1 module defs;
2 
3 struct OGLFunctionFamily {
4 	string fromFilename;
5 	string familyOfFunction;
6 	
7 	string copyright;
8 	
9 	OGLFunction[] functions;
10 	OGLIntroducedIn introducedIn;
11 
12 	OGLParameter[] docs_parameters;
13 	OGLDocumentation docs_description = OGLDocumentation(OGLDocumentationType.Container);
14 	OGLDocumentation docs_notes = OGLDocumentation(OGLDocumentationType.Container);
15 	OGLDocumentation docs_seealso = OGLDocumentation(OGLDocumentationType.Container);
16 	OGLDocumentation docs_copyright = OGLDocumentation(OGLDocumentationType.Container);
17 	OGLDocumentation docs_errors = OGLDocumentation(OGLDocumentationType.Container);
18 }
19 
20 struct OGLFunction {
21 	string returnType;
22 	string name;
23 	
24 	string[] argTypes;
25 	string[] argNames;
26 
27 	OGLIntroducedIn introducedIn;
28 	string introducedInExtension;
29 }
30 
31 struct OGLParameter {
32 	string[] appliesToNames;
33 	OGLDocumentation documentation = OGLDocumentation(OGLDocumentationType.Container);
34 }
35 
36 enum OGLIntroducedIn : ushort {
37 	Unknown,
38 	V1P0 = 10,
39 	V1P1 = 11,
40 	V1P2 = 12,
41 	V1P3 = 13,
42 	V1P4 = 14,
43 	V1P5 = 15,
44 	V2P0 = 25,
45 	V2P1 = 21,
46 	V2P2 = 22,
47 	V3P0 = 30,
48 	V3P1 = 31,
49 	V3P2 = 32,
50 	V3P3 = 33,
51 	V4P0 = 40,
52 	V4P1 = 41,
53 	V4P2 = 42,
54 	V4P3 = 43,
55 	V4P4 = 44,
56 	V4P5 = 45,
57 }
58 
59 enum OGLDocumentationType {
60 	Unknown,
61 	Paragraph,
62 	Text,
63 	Title,
64 	Container,
65 	
66 	LookupParameter,
67 	LookupConstant,
68 	LookupFunction,
69 	
70 	TableContainer,
71 	TableHeader,
72 	TableBody,
73 	TableRow,
74 	TableEntry,
75 
76     IndexList,
77 	IndexItem,
78 	List,
79 	ListItem,
80 	
81 	StyleContainer,
82 	StyleCode,
83 	StyleSuperScript,
84 	StyleSubScript,
85 		
86 	Footnote,
87 	InlineEquation,
88 	Trademark,
89 	Copyright,
90 	Link,
91 
92 	MathMLContainer,
93 	MathML_MI,
94 	MathML_mfenced,
95 	MathML_mn,
96 	MathML_mrow,
97 	MathML_msup,
98 	MathML_mo,
99 	MathML_msub,
100 	MathML_mfrac,
101 	MathML_mtable,
102 	MathML_mtr,
103 	MathML_mtd,
104 	MathML_mspace,
105 	MathML_mtext,
106 	MathML_apply,
107 	MathML_floor,
108 	MathML_csymbol,
109 	MathML_infinity,
110 	MathML_mover,
111 	MathML_munderover,
112 	MathML_msqrt
113 }
114 
115 struct OGLDocumentation {
116 	OGLDocumentationType type;
117 
118 	string value_string, value_string2;
119 	OGLDocumentation[] value_children;
120 	int value_numcols;
121 }
122 
123 struct OGLEnumGroup {
124 	string name;
125 	bool isBitmask;
126 	OGLEnum[] enums;
127 }
128 
129 struct OGLEnum {
130 	string name;
131 	string value;
132 }